package com.woniu.carrent.interceptor;

import cn.dev33.satoken.filter.SaServletFilter;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.context.annotation.Bean;

public class AutoRefreshTokenFilter extends SaServletFilter {
    @Bean
    public SaServletFilter getSaServletFilter() {
        SaServletFilter filter = new SaServletFilter();
        filter.setBeforeAuth(r -> {
            // 检查是否登录
            if (StpUtil.isLogin()) {
                // 获取 Token 剩余有效时间
                long tokenTimeout = StpUtil.getTokenTimeout();
                // 剩余有效时间小于5分钟，则刷新 Token
                if (tokenTimeout < 20) {
                    StpUtil.updateLastActiveToNow(); // 刷新 Token 最后活跃时间
                }
            }
        });
        return filter;
    }

}